package com.gupao.javavip.gof.singleton;

/**
 * 懒汉式单例模式-线程安全-方法线程同步
 * <p>
 * 优点：规避了线程安全问题
 * 缺点：用synchronized 加锁，在线程数量比较多情况下，如果 CPU 分配压力上升，会导致大批量线程出现阻塞，从而导致程序运行性能大幅下降
 */
public class LazySingletonSafeMethod {
    private static LazySingletonSafeMethod INSTANCE = null;

    //构造方法私有化
    private LazySingletonSafeMethod() {
        if (INSTANCE != null) {
            throw new RuntimeException("不允许创建多个实例");
        }
    }

    //提供全局访问点
    public static synchronized LazySingletonSafeMethod getInstance() {
        if (INSTANCE == null) {
            INSTANCE = new LazySingletonSafeMethod();

        }
        return INSTANCE;
    }
}
